package com.songlanyun.modules.notifytemp.model.dto;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.songlanyun.common.drive.RootEntity;
import com.songlanyun.common.drive.ValueObject;
import com.songlanyun.common.enums.WxConstant;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 微信消息模板表
 *
 * @author Mark
 * @email sunlightcs@gmail.com
 * @date 2020-11-10 14:22:52
 */
@Data
public class WxNotifyDTO implements ValueObject {

    public WxNotifyDTO() {
    }

    /**
     * 给一个用户发送消息
     *
     * @param wxType
     * @param openId
     * @param values
     */
    public WxNotifyDTO(WxConstant.WxType wxType, String openId, List<Object> values) {
        this.wxType = wxType;
        this.openIds = new ArrayList<String>();
        this.openIds.add(openId);
        this.values = values;
    }

    /**
     * 给多个用户发送消息
     *
     * @param wxType
     * @param openIds
     * @param values
     */
    public WxNotifyDTO(WxConstant.WxType wxType, List<String> openIds, List<Object> values) {
        this.wxType = wxType;
        this.openIds = openIds;
        this.values = values;
    }


    /**
     * 微信模板类型（根据类型查询对应模板）
     */
    @NotNull(message = "微信模板类型不能为空")
    private WxConstant.WxType wxType;

    /**
     * openid
     */
    @NotNull(message = "openid不能为空")
//    @Size(min = 1, message = "openid不能为空")
    private List<String> openIds;

    /**
     * 模板消息字段对应值（按顺序填写）
     * 模板字段thing（不能超过20个字）：StrUtil.get20Str()
     */
    @NotNull(message = "模板消息字段对应值不能为空")
//    @Size(min = 1, message = "模板消息字段对应值不能为空")
    private List<Object> values;
}
